package homework;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import com.example.rumen.Appshop;
import com.example.rumen.R;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class BaoM extends AppCompatActivity {

    int images[] = new int[]{R.drawable.crgk, R.drawable.crzz, R.drawable.crdz, R.drawable.zzyjs, R.drawable.zzbss,
            R.drawable.zzbsh};
    String names[] = new String[]{"成人高考", "成人中专自学考试", "成人大专自学考试", "在职研究生", "在职博士生", "在职博士后"};

    String bnNumbeer[] = new String[]{"已报名610305人", "已报名12305人", "已报名25705人", "已报名9525305人", "已报名6305人", "已报名05人"};
    private ListView list_view;
    private ArrayList<Map<String, Object>> arraryList;
    private SimpleAdapter simpleAdapter;
    private Button btn_bm;

    @SuppressLint("MissingInflatedId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_bao_m);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });

        list_view = findViewById(R.id.listview_bm);

        arraryList = new ArrayList<>();
        for (int i = 0; i < images.length; i++) {
            Map<String,Object> map = new HashMap<>();

            map.put("001",images[i]);
            map.put("002",names[i]);
            map.put("003",bnNumbeer[i]);
            arraryList.add(map);
        }
        simpleAdapter = new SimpleAdapter(getApplicationContext(), arraryList, R.layout.simple_bm,
                new String[]{"001", "002", "003"}, new int[]{R.id.imageView_bm, R.id.textView_bm_1, R.id.textView_bm_2}){
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                View view = super.getView(position, convertView, parent);
                 btn_bm =view.findViewById(R.id.button_bm);//TODO 一定是view调用的方法，否咋闪退,

                /*
                * 作用域不同：

findViewById() 是 Activity 的方法，它在整个 Activity 的布局中查找视图
view.findViewById() 是 View 的方法，它只在特定的 view 对象内查找子视图


在 ListView 中的具体情况：

在 ListView 中，每个列表项都是一个独立的 View（由适配器的 getView 方法创建）
这些按钮 button_bm 存在于列表项的布局中（simple_bm.xml），不是直接存在于 Activity 的主布局中
每个列表项都有自己的按钮实例


为什么会闪退：

当你使用 findViewById(R.id.button_bm) 时，它尝试在 Activity 的整个布局中查找这个按钮
但在 Activity 的主布局中实际上不存在这个按钮（它只存在于列表项的布局中）
结果返回 null，当你尝试对 null 对象调用方法时，就会抛出 NullPointerException 导致闪退
                * */
                 btn_bm.setTag(position);

                 btn_bm.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
                         int pos =(int) v.getTag();
                         startActivity(new Intent(getApplicationContext(), selectSchool.class));
                     }
                 });
                 return view;
            }
        };




        list_view.setAdapter(simpleAdapter);
        //报名跳转，每个适配器的报名按钮都跳转到selectschool


   /*     btn_bm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), selectSchool.class);
                startActivity(intent);
            }
        });*/

    }
}